package thesis.filesharing.dao;

import java.util.List;

import thesis.filesharing.common.valueobjects.SearchClassValueObject;
import thesis.filesharing.model.Clazz;

import com.google.appengine.api.datastore.Key;

public interface ClassDAO {
	
	public Clazz findClassByIdAndSemester(String classId, Integer semester);
	public Clazz findClassByKey(Key classKey);
	public List<Clazz> listClasses(int page, int pageSize);
	public Clazz saveClass(Clazz clazz, Key subjectKey);
	public Clazz updateClass(Clazz clazz, String subjectId);
	public void deleteClass(Key classKey);
	public int countClasses();
	public boolean checkClassIdExistedInSemester(String classId, Integer semester);
	public List<Clazz> searchClasses(SearchClassValueObject searchObj, int page, int pageSize);
	public int countFoundClasses(SearchClassValueObject searchObj);
	public void addStudentToClass(String studentId, String classId);
	public void deleteStudentFromClass(Key studentKey, Key classKey);
	public List<Clazz> searchClasses(SearchClassValueObject searchObj);
}
